package com.octopus.core.parser;

import com.octopus.core.Response;
import com.octopus.core.result.Result;

/**
 * 二进制内容解析
 *
 * <p>一般用作音视频文件的解析。
 *
 * @author yang_shoulai@hoperun.com
 * @date 2019/02/15
 */
public class BinaryParser implements Parser {

  @Override
  public final ParseResult parse(Response response) throws ParseException {

    return this.parse(response.body(), response);
  }

  /**
   * 解析二进制内容
   *
   * <p>覆盖此方法以实现自定的解析规则
   *
   * @param data 数据
   * @param response 下载响应内容
   * @return 解析结果
   * @throws ParseException 解析异常
   */
  public ParseResult parse(byte[] data, Response response) throws ParseException {
    return ParseResult.me().body(Result.me().obj(data));
  }
}
